Systems and methods for managing destage conflicts

ABSTRACT

Destaging storage tracks from each rank that includes a greater than a predetermined percentage of a predetermined amount of storage space with respect to a current amount of storage space allocated to each rank until the current amount of storage space used by each respective rank is equal to the predetermined percentage of the predetermined amount of storage space. The destage storage tracks are declined from being destaged from each rank that includes less than or equal to the predetermined percentage of the predetermined amount of storage space rank.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.12/965,133, filed on Dec. 10, 2010, and copending application to U.S.patent application Ser. No. 13/493,794, filed on Jun. 11, 2012, and thecontents of both Applications are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates in general computing systems, and moreparticularly to, systems and methods for managing destage conflicts.

2. Description of the Related Art

Contemporary computer storage systems are known to destage storagetracks from cache to long-term storage devices so that there issufficient room in the cache for data to be written. When destaging thestorage tracks, contemporary storage systems destage the storage tracksfrom each rank in the cache when the cache is becoming full or theglobal pressure factor is high. That is, storage tracks are destagedfrom each rank when the global pressure factor is high, even though someranks in the cache may only be storing a small number of storage trackswith respect to the amount of storage space allocated to these ranks.When a rank is storing a small number of storage tracks with respect toits allocated amount of storage space in the cache, the probably thatthe rank will experience destage conflicts increases.

SUMMARY OF THE INVENTION

Various embodiments provide systems for reducing destage conflicts incache. One system comprises a cache partitioned into a plurality ofranks configured to store a plurality of storage tracks and a processorcoupled to the cache. In one embodiment, the processor is configured toallocate an amount of storage space in the cache to each rank andmonitor a current amount of storage space used by each rank with respectto the amount of storage space allocated to each respective rank. Theprocessor is further configured to destage storage tracks from each rankuntil the current amount of storage space used by each respective rankis equal to a predetermined minimum amount of storage space with respectto the amount of storage space allocated to each rank.

Also provided are physical computer storage mediums (e.g., an electricalconnection having one or more wires, a portable computer diskette, ahard disk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, a portable compact disc read-only memory (CD-ROM), anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing) comprising a computer program product forreducing destage conflicts in a cache partitioned into a plurality ofranks configured to store a plurality of storage tracks. One physicalcomputer storage medium comprises computer code for allocating, by aprocessor coupled to the cache, an amount of storage space in the cacheto each rank and computer code for monitoring a current amount ofstorage space used by each rank with respect to the amount of storagespace allocated to each respective rank. The physical computer storagemedium further comprises computer code for destaging storage tracks fromeach rank until the current amount of storage space used by eachrespective rank is equal to a predetermined minimum amount of storagespace with respect to the amount of storage space allocated to eachrank.

In one embodiment, a method is provided for managing destage conflictsin a cache partitioned into a plurality of ranks configured to store aplurality of storage tracks using at least one processor device in acomputing environment. In one embodiment, by way of example only,storage tracks are destaged from each rank that includes a greater thana predetermined percentage of a predetermined amount of storage spacewith respect to a current amount of storage space allocated to each rankuntil the current amount of storage space used by each respective rankis equal to the predetermined percentage of the predetermined amount ofstorage space. The destage storage tracks are declined from beingdestaged from each rank that includes less than or equal to thepredetermined percentage of the predetermined amount of storage spacerank.

In another embodiment, a computer system is provided for managingdestage conflicts in a cache partitioned into a plurality of ranksconfigured to store a plurality of storage tracks using at least oneprocessor device, in a computing environment. The computer systemincludes a computer-readable medium and a processor in operablecommunication with the computer-readable medium. In one embodiment, byway of example only, the processor, destages storage tracks from eachrank that includes a greater than a predetermined percentage of apredetermined amount of storage space with respect to a current amountof storage space allocated to each rank until the current amount ofstorage space used by each respective rank is equal to the predeterminedpercentage of the predetermined amount of storage space. The destagestorage tracks are declined from being destaged from each rank thatincludes less than or equal to the predetermined percentage of thepredetermined amount of storage space rank.

In a further embodiment, a computer program product is provided managingdestage conflicts in a cache partitioned into a plurality of ranksconfigured to store a plurality of storage tracks using at least oneprocessor device, in a computing environment. The computer-readablestorage medium has computer-readable program code portions storedthereon. The computer-readable program code portions include executableportions that destages storage tracks from each rank that includes agreater than a predetermined percentage of a predetermined amount ofstorage space with respect to a current amount of storage spaceallocated to each rank until the current amount of storage space used byeach respective rank is equal to the predetermined percentage of thepredetermined amount of storage space. The destage storage tracks aredeclined from being destaged from each rank that includes less than orequal to the predetermined percentage of the predetermined amount ofstorage space rank.

In addition to the foregoing exemplary method embodiment, otherexemplary system and computer product embodiments are provided andcontribute related advantages. The foregoing summary has been providedto introduce a selection of concepts in a simplified form that arefurther described below in the Detailed Description. This Summary is notintended to identify key features or essential features of the claimedsubject matter, nor is it intended to be used as an aid in determiningthe scope of the claimed subject matter. The claimed subject matter isnot limited to implementations that solve any or all disadvantages notedin the background.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention brieflydescribed above will be rendered by reference to specific embodimentsthat are illustrated in the appended drawings. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered to be limiting of its scope, the inventionwill be described and explained with additional specificity and detailthrough the use of the accompanying drawings, in which:

FIG. 1 is a block diagram of one embodiment of a system for reducingdestage conflicts in cache; and

FIG. 2 is a flow diagram of one embodiment of a system for reducingdestage conflicts in a cache.

DETAILED DESCRIPTION OF THE DRAWINGS

Various embodiments provide systems for reducing destage conflicts incache. Also provided are physical computer storage mediums (e.g., anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing) comprising a computer programproduct for reducing destage conflicts in a cache partitioned into aplurality of ranks configured to store a plurality of storage tracks.

Turning now to the figures, FIG. 1 is a block diagram of one embodimentof a system 100 for managing destage scan times in cache. At least inthe illustrated embodiment, system 100 comprises a memory 110 coupled toa cache 120 and a processor 130 via a bus 140 (e.g., a wired and/orwireless bus).

Memory 110 may be any type of memory device known in the art ordeveloped in the future. Examples of memory 110 include, but are notlimited to, an electrical connection having one or more wires, aportable computer diskette, a hard disk, a random access memory (RAM),an erasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, a portable compact disc read-only memory (CD-ROM), anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the various embodiments of memory 110,storage tracks are capable of being stored in memory 110. Furthermore,each of the storage tracks can be destaged to memory 110 from cache 120when data is written to the storage tracks.

Cache 120, in one embodiment, comprises a write cache partitioned intoone or more ranks 1210, where each rank 1210 includes one or morestorage tracks. Cache 120 may be any cache known in the art or developedin the future.

During operation, the storage tracks in each rank 1210 are destaged tomemory 110 in a foreground destaging process after the storage trackshave been written to. That is, the foreground destage process destagesstorage tracks from the rank(s) 1210 to memory 110 while a host (notshown) is actively writing to various storage tracks in the ranks 1210of cache 120. Ideally, a particular storage track is not being destagedwhen one or more hosts desire to write to the particular storage track,which is known as a destage conflict. To reduce the number of destageconflicts in cache 120, processor 130 is configured to execute a methodfor managing destage conflicts in cache 120.

In various embodiments, processor 130 comprises or has access to adestage management module 1310, which comprises computer-readable codethat, when executed by processor 130, causes processor 130 to performthe method for managing destage conflicts in cache 120. In the variousembodiments, processor 130 is configured to allocate a predeterminedamount of storage space in cache 120 to each rank 1210.

In one embodiment, each rank 1210 is allocated the same predeterminedamount of storage space in cache 120. In another embodiment, at leasttwo ranks 1210 are allocated different predetermined amounts of storagespace in cache 120. In still another embodiment, each rank 1210 isallocated a different predetermined amount of storage space in cache120. In each of these embodiments, each predetermined amount of storagespace in cache 120 is not to exceed a predetermined maximum amount ofstorage space.

In various embodiments, processor 130 is configured to allocate thepredetermined maximum amount of storage space on a percentage basis. Inone embodiment, the predetermined maximum amount of storage spaceallocated to a respective rank 1210 is in the range of about one percentto about twenty-five percent (1%-50%) of the total storage capacity ofcache 120. In another embodiment, the predetermined maximum amount ofstorage space allocated to a respective rank 1210 is twenty-five percent(25%) of the total storage capacity of cache 120.

In various other embodiments, processor 130 is configured to allocatethe predetermined maximum amount of storage space on a storage trackbasis. That is, each rank 1210 is limited to a predetermined maximumnumber of storage tracks, which can vary from rank to rank.

Processor 130, in various embodiments, is configured to monitor eachrank 1210 in cache 120 and determine the amount of storage tracks eachrespective rank 1210 is storing with respect to its allocated amount ofstorage space in cache 120. In one embodiment, processor 130 isconfigured to determine the amount of storage tracks in each respectiverank 1210 on a percentage basis. That is, processor 130 is configured tomonitor each rank 1210 and determine the percentage each respective rank1210 is using to store storage tracks with respect to the individualallocations of the total storage space in cache 120.

In another embodiment, processor 130 is configured to determine thenumber of storage tracks in each respective rank 1210. Specifically,processor 130 is configured to monitor each rank 1210 and determine thenumber of storage tracks each respective rank 1210 is using to storestorage tracks with respect to the individual allocations of the totalstorage space in cache 120.

Processor 130, in various embodiments, is configured to destage storagetracks from each respective rank 1210 until a predetermined minimumamount of storage space remains in each respective rank 1210 withrespect to its predetermined allocated amount of storage space in cache120, and then cease to or no longer destage storage tracks from ranks1210 that are using less than or equal to the predetermined minimumamount of storage space. In one embodiment, processor 130 is configuredto destage storage tracks from each rank 1210 until a predeterminedpercentage (e.g., thirty percent (30%)) of the predetermined amount ofstorage space in cache 120 is reached. In another embodiment, processor130 is configured to destage storage tracks from each rank 1210 until apredetermined minimum number of storage tracks is reached.

For example, in an embodiment that includes ten (10) ranks 1210 in whicheach rank 1210 is allocated 10 percent (10%) of the total storage spaceof cache 120 and the predetermined minimum amount of storage tracks isthirty percent (30%), processor 130 will continue to destage storagetracks from each rank 1210 that includes more than three percent (3%) ofthe total storage capacity of cache 120 (i.e., 10%×30%=3%). Once aparticular rank 1210 has reached the three percent threshold, processor130 will cease to or no longer destage storage tracks from theparticular storage track until the particular rank 1210 is using morethan the predetermined amount of storage tracks is (i.e., three percentof the total storage capacity of cache 120 in this example).

Processor 130, in various embodiments, is configured to utilize aformula to determine the number of destage tasks to utilize whendestaging storage tracks from each respective rank 1210. In the variousembodiments, the formula is based on the global pressure factor of cache120 as it relates to each respective rank 1210. That is, the number ofdestage tasks utilized to destage storage tracks from each respectiverank 1210 is proportional to the amount of its allocated storage spaceeach respective rank 1210 is multiplied by the global pressure factor,which is a factor determined by a collective percentage of the totalamount of storage space in cache 120 being utilized by ranks 1210.

In one embodiment, the formula includes a predetermined maximum numberdestage tasks (e.g., forty (40) destage tasks) that is utilized when aparticular rank 1210 is utilizing a large amount of its allocatedstorage space and the global pressure factor is high. In anotherembodiments, the formula includes a default of zero (0) destage tasksthat is utilized when a particular rank 1210 is utilizing an amount ofstorage space less than or equal to the predetermined minimum amountwith respect to its allocated amount of storage space in cache 120.

Turning now to FIG. 2, FIG. 2 is a flow diagram of one embodiment of amethod 200 for managing destage conflicts in a cache (e.g., cache 120)comprising one or more ranks (e.g., ranks 1210). At least in theillustrated embodiment, method 200 begins by allocating a predeterminedamount of storage space in the cache to each rank (block 205).

In various embodiments, the predetermined maximum amount of storagespace is allocated on a percentage basis. In one embodiment, thepredetermined maximum amount of storage space allocated to a respectiverank is in the range of about one percent to about twenty-five percent(1%-50%) of the total storage capacity of the cache. In anotherembodiment, the predetermined maximum amount of storage space allocatedto a respective rank is twenty-five percent (25%) of the total storagecapacity of the cache.

In various other embodiments, the predetermined maximum amount ofstorage space is allocated on a storage track basis. That is, each rankis limited to a predetermined maximum number of storage tracks, whichcan vary from rank to rank.

Method 200 further comprises monitoring each rank in the cache (block210) and determining the amount of storage tracks each respective rankis storing with respect to its allocated amount of storage space in thecache (block 215). In one embodiment, the amount of storage tracks ineach respective rank is determined on a percentage basis. That is, eachrank is monitored and the percentage each respective rank is using tostore storage tracks is determined with respect to the individualallocations of the total storage space in the cache.

In another embodiment, the number of storage tracks in each respectiverank is determined. Specifically, each rank is monitored and the numberof storage tracks each respective rank is using to store storage tracksis determined with respect to the individual allocations of the totalstorage space in the cache.

Method 200 further comprises determining if the amount of storage tracksin each respective rank is greater a predetermined minimal amount ofstorage tracks in the cache (block 220). In one embodiment, thepredetermined minimal amount of storage tracks is a predeterminedpercentage (e.g., thirty percent (30%)) of the amount of storage spaceallocated to each respective rank. In another embodiment, thepredetermined minimal amount of storage tracks is a predeterminedminimum number of storage tracks.

If the amount of storage tracks in a particular rank is greater than thepredetermined minimal amount of storage tracks, method 200 comprisesdestaging storage tracks from each respective rank that includes anamount of storage tracks greater than the predetermined minimal amountof storage tracks (block 225). Method 200 then returns to monitoringeach rank in the cache (block 210).

If the amount of storage tracks in a particular rank is less than orequal to the predetermined minimal amount of storage tracks, method 200comprises declining to destage or not destaging storage tracks fromranks that are using less than or equal to the predetermined minimumamount of storage space (block 230). Method 200 then returns tomonitoring each rank in the cache (block 210).

While at least one exemplary embodiment has been presented in theforegoing detailed description of the invention, it should beappreciated that a vast number of variations exist. It should also beappreciated that the exemplary embodiment or exemplary embodiments areonly examples, and are not intended to limit the scope, applicability,or configuration of the invention in any way. Rather, the foregoingdetailed description will provide those skilled in the art with aconvenient road map for implementing an exemplary embodiment of theinvention, it being understood that various changes may be made in thefunction and arrangement of elements described in an exemplaryembodiment without departing from the scope of the invention as setforth in the appended claims and their legal equivalents.

As will be appreciated by one of ordinary skill in the art, aspects ofthe present invention may be embodied as a system, method, or computerprogram product. Accordingly, aspects of the present invention may takethe form of an entirely hardware embodiment, an entirely softwareembodiment (including firmware, resident software, micro-code, etc.) oran embodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module,” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be a computer-readable signalmedium or a physical computer-readable storage medium. A physicalcomputer readable storage medium may be, for example, but not limitedto, an electronic, magnetic, optical, crystal, polymer, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. Examples of a physical computer-readablestorage medium include, but are not limited to, an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk,RAM, ROM, an EPROM, a Flash memory, an optical fiber, a CD-ROM, anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the context of this document, acomputer-readable storage medium may be any tangible medium that cancontain, or store a program or data for use by or in connection with aninstruction execution system, apparatus, or device.

Computer code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wired, optical fiber cable, radio frequency (RF), etc., or any suitablecombination of the foregoing. Computer code for carrying out operationsfor aspects of the present invention may be written in any staticlanguage, such as the “C” programming language or other similarprogramming language. The computer code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, or communication system, including, but notlimited to, a local area network (LAN) or a wide area network (WAN),Converged Network, or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks. The computer program instructions may also beloaded onto a computer, other programmable data processing apparatus, orother devices to cause a series of operational steps to be performed onthe computer, other programmable apparatus or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the above figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While one or more embodiments of the present invention have beenillustrated in detail, one of ordinary skill in the art will appreciatethat modifications and adaptations to those embodiments may be madewithout departing from the scope of the present invention as set forthin the following claims.

The invention claimed is:
 1. A method for managing destage conflicts ina cache partitioned into a plurality of ranks configured to store aplurality of storage tracks using a processor device, the methodcomprising: destaging storage tracks from each rank that includesgreater than a predetermined percentage of a predetermined amount ofstorage space with respect to a current amount of storage spaceallocated to each rank until the current amount of storage space used byeach respective rank is equal to the predetermined percentage of thepredetermined amount of storage space; and declining to destage storagetracks from each rank that includes less than or equal to thepredetermined percentage of the predetermined amount of storage space.2. The method of claim 1, further including performing at least one of:allocating an amount of storage space in the cache to each rank,monitoring the current amount of storage space used by each rank withrespect to the amount of storage space allocated to each respectiverank, and ceasing to destage storage tracks from each rank that includesthe predetermined percentage of the predetermined amount of storagespace.
 3. The method of claim 1, wherein allocating the amount ofstorage space in the cache comprises allocating no more that twenty fivepercent (25%) of a total amount of storage space in the cache to any onerank.
 4. The method of claim 3, wherein ceasing to destage storagetracks from each rank comprises ceasing to destage storage tracks fromeach rank that includes less than or equal to thirty percent (30%) ofits respective allocated storage space.
 5. The method of claim 3,wherein ceasing to destage storage tracks from each rank comprisesceasing to destage storage tracks from each rank that includes less thanor equal to a predetermined number of storage tracks.
 6. The method ofclaim 2, wherein destaging storage tracks from each rank comprises:determining a current amount of storage tracks in the cache, utilizing aformula to determine a current number of destage tasks to utilize todestage storage tracks from the cache, the current number of destagestorage tasks based on the current amount of storage tracks in thecache, and utilizing the current number of destage storage tasks todestage the plurality of storage tracks.
 7. The method of claim 6,wherein ceasing to destage storage tracks comprises reducing the currentnumber of destage tasks to zero on each rank that includes less than orequal to the predetermined percentage of the predetermined amount ofstorage space.
 8. A system for managing destage conflicts in cache,comprising: a cache partitioned into a plurality of ranks configured tostore a plurality of storage tracks; and a processor coupled to thecache, wherein the processor: destages storage tracks from each rankthat includes greater than a predetermined percentage of a predeterminedamount of storage space with respect to a current amount of storagespace allocated to each rank until the current amount of storage spaceused by each respective rank is equal to the predetermined percentage ofthe predetermined amount of storage space, and declines to destagestorage tracks from each rank that includes less than or equal to thepredetermined percentage of the predetermined amount of storage space.9. The system of claim 8, wherein the processor performs at least oneof: allocating an amount of storage space in the cache to each rank,monitoring the current amount of storage space used by each rank withrespect to the amount of storage space allocated to each respectiverank, and ceasing to destage storage tracks from each rank that includesthe predetermined percentage of the predetermined amount of storagespace.
 10. The system of claim 8, wherein the processor allocates nomore that twenty five percent (25%) of a total amount of storage spacein the cache to any one rank.
 11. The system of claim 10, wherein theprocessor ceases destaging storage tracks from each rank that includesless than or equal to thirty percent (30%) of its respective allocatedstorage space.
 12. The system of claim 10, wherein the processor ceasesdestaging storage tracks from each rank that includes less than or equalto a predetermined number of storage tracks.
 13. The system of claim 9,wherein, when destaging storage tracks from each rank, the processor:determines a current amount of storage tracks in the cache, utilizes aformula to determine a current number of destage tasks to utilize todestage storage tracks from the cache, the current number of destagestorage tasks based on the current amount of storage tracks in thecache, and utilizes the current number of destage storage tasks todestage the plurality of storage tracks.
 14. The system of claim 13,wherein, when ceasing to destage storage tracks, the processor reducesthe current number of destage tasks to zero on each rank that includesless than or equal to the predetermined percentage of the predeterminedamount of storage space.
 15. A non-transitory physical computer storagememory comprising a computer program product method for managing destageconflicts in a cache partitioned into a plurality of ranks configured tostore a plurality of storage tracks, the physical computer storagememory comprising: computer code that destages storage tracks from eachrank that includes greater than a predetermined percentage of apredetermined amount of storage space with respect to a current amountof storage space allocated to each rank until the current amount ofstorage space used by each respective rank is equal to the predeterminedpercentage of the predetermined amount of storage space; and computercode that declines to destage storage tracks from each rank thatincludes less than or equal to the predetermined percentage of thepredetermined amount of storage space.
 16. The physical computer storagememory of claim 15, further comprising computer code that: allocates anamount of storage space in the cache to each rank, monitors the currentamount of storage space used by each rank with respect to the amount ofstorage space allocated to each respective rank, and ceases to destagestorage tracks from each rank that includes the predetermined percentageof the predetermined amount of storage space.
 17. The physical computerstorage memory of claim 15, further comprising computer code that ceasesto destage storage tracks from each rank that includes less than orequal to thirty percent (30%) of its respective allocated storage space.18. The physical computer storage memory of claim 16, further comprisingcomputer code that ceases to destage storage tracks from each rank thatincludes less than or equal to a predetermined number of storage tracks.19. The physical computer storage memory of claim 16, further comprisingcomputer code that: determines a current amount of storage tracks in thecache, utilizes a formula to determine a current number of destage tasksto utilize to destage storage tracks from the cache, the current numberof destage storage tasks based on the current amount of storage tracksin the cache, and utilizes the current number of destage storage tasksto destage the plurality of storage tracks.
 20. The physical computerstorage memory of claim 19, further comprising computer code thatreduces the current number of destage tasks to zero on each rank thatincludes less than or equal to the predetermined percentage of thepredetermined amount of storage space.